The invention relates to a method and apparatus for transporting and delivering data across the internet. More particularly it relates to a method and apparatus for providing an internet third party data channel.
The internet as a means for world wide data transport is in essence a network of internet severs, routers and clients. The low-level, packet oriented transport of data through this network is controlled by the TCP/IP protocol, a description of which is given in section 5.5.2 of the book xe2x80x9cComputer Networksxe2x80x9d by A. S. Tanen-baum, 2nd edition, published by Prentice-Hall, 1989.
On the higher protocol levels, the usual way for communicating data across the internet is by means of dedicated client/server applications implementing a suitable application level protocol. The protocol normally employs a request/response mechanism and uses some kind of status information to control the data transmission. A well-known example of such a client/server application in the context of the internet is the World Wide Web, using HTTP (hypertext transfer protocol) and HTML (hypertext markup language) as application level protocols. Information about HTTP and HTML can be found in the World Wide Web at the URL (unique resource locator)http://www.w3c.org. The HTTP protocol is defined in document RFC 2068.
A basic paradigm of internet client/server applications and the associated application level protocols is that a logical or physical connection between two parties, namely the internet client and the internet server, is assumed. In other words, the two parties are considered to be connected via a (possibly logical) data channel.
All other parties involved in the actual transportation process (for example, routers, proxies and so on) are regarded as transparent. For example, a proxy can be thought of as an application level router, not contributing to the data stream being transported through it. This logical transparency of a proxy is maintained even if the proxy, in fact, forwards cached copies of requested objects to a client.
Because of this paradigm of a two party communication, it is difficult to incorporate third party data into an existing data channel between an internet server and an internet client. However, inclusion of such third party data is often desirable in order to provide value added services or enhanced security and information features, for example in the field of portal services.
A main object of the present invention is therefore to provide means for incorporating third party data into existing internet client/server connections in a convenient and flexible way. In particular, it is desired that the third party and the data supplied by it do not need to be related to or associated with the client and/or the server.
According to the present invention, this object is solved by methods, an apparatus and a computer program product having the features of the independent claims. The dependent claims concern advantageous embodiments of the invention.
A basic idea of the invention is to establish the third party data channel by intercepting the data communications transmitted on an existing data channel between a server and a client. For example, the client may be an internet browser or a program module of such a browser, in particular a display module. The data communications are generally forwarded to the intended recipient. However, if a predetermined data code (for example, a status code of the application protocol) is detected or some other condition is met, the third party data is inserted into the communication on the existing data channel, or said communication is modified otherwise on the basis of the third party data or even replaced by the third party data.
Based on this idea, the present invention allows the creation of a new logical transport channel between the third party data source on one side and the client and/or server on the other side. In effect, the original link between the client and the server can now be shared by three or more parties. The user or third party may create, exploit and extend the new data channel independently of the remote server and/or the client. The third party data may or may not be related to the data sent by the server. The properties of the third party data channel can be individually controlled and configured by the user, the system administrator or the third party.
The invention greatly enhances the ease and flexibility of data distribution via the internet and forms a possible basis for a series of new online services. For example, information supplied by an internet service provider or any other entity forwarding internet traffic or a portal service provider may be inserted into the existing data channel. This allows easy local language support and guidance and portal services. No new client and server applications are needed. All major internet protocols may be supported.
An especially advantageous application of the present invention is in the field of portal services. Generally, a portal service is a kind of directory homepage which can be accessed by users as a starting point for internet browsing. The portal homepage acts as a xe2x80x9cportalxe2x80x9d to the rest of the internet, giving instant and easy access to search engines, reviews and so on. Portal services are currently offered by many internet companies using regular web servers, standard HTML pages and standard browsers. In this context, the paradigm of a two party communication as described above applies.
Because of this paradigm, it is difficult for a portal site to directly and automatically present the user with additional (third party) information while the user accesses other sites. Once the user has left the portal web site, the portal service can no longer automatically help and guide the user because a deliberate action of the user is required to re-enter the portal service.
The invention may be employed to close this gap between the user and the portal service. For example, when the user causes an error condition during browsing, the browser (or a proxy or a router) may intercept the error message before it is displayed, obtain appropriate help data from the third party portal service, and display the help data to the user, thus, e.g., indicating alternative site names or an explanation of the error. This process is independent of the site the user accessed when the error occurred and does not require an additional tool or window or user interaction. The invention is not limited to portal services, but can be applied to a wide variety of information retrieval or user dialog systems on the internet.
According to the invention, each data communication is monitored and possibly modified. In this context, a xe2x80x9cdata communicationxe2x80x9d may or may not have a predefined length. For example, a data communication may comprise a predefined or an arbitrary number of TCP/IP datagrams or memory words (e.g., bytes). The term xe2x80x9cdata channelxe2x80x9d as used herein shall be understood as denoting any logical or physical path for transferring or communicating data between two entities. For example, a data channel may be an internet connection or any kind of communication mechanism between program modules including shared memory regions. The term xe2x80x9cmodulexe2x80x9d is used to denote functional features of a program, independently of the actual structure of the program and of the programming technique and language in which the program is written. A module in this sense may also be a plugin or tool or applet.
In preferred embodiments of the invention, the third party data is simply included into the data communication. The third party data may be encapsulated and/or marked by suitable tags or attributes. In other embodiments, the third party data is at least in part used to control a modification or deletion of data contained in the original data communication. Thus the data exchange between the server and the client may be modified, deleted, replaced or enriched on the basis of the third party data. In still other embodiments, the third party, the client and the server may interact in a complex way including multiple request and response dialogs between all parties.
It is especially preferred to monitor and intercept data communications running from the server to the client. However, also data communications directed towards the server may be monitored in order to control properties of the third party data inclusion mechanism. In some embodiments of the invention, the client may be an internet browser. It is also possible that the client itself monitors, parses and modifies the data sent from and to the server that has been accessed by the user, and obtains the third party data by opening a further connection to a third party server. Preferably the method of the invention is performed automatically, i.e. without user intervention.
The predetermined property of the data communication, which triggers the inclusion mechanism of the present invention, is preferably the occurrence of a predetermined data code. In preferred embodiments of the invention, the predetermined data code is an application level protocol code, i.e. a code defined by the protocol established between the client and server applications. Such protocols may be HTML or HTTP or similar protocols. In particular, the code may be a protocol status code or a HTML tag like, e.g. xe2x80x9c less than PSI (options) greater than xe2x80x9d or xe2x80x9c less than CSI (options) greater than xe2x80x9d or xe2x80x9c less than !xe2x80x94psi (options) greater than xe2x80x9d.
Most preferably, the predetermined data code is one which is issued by the server to signal the occurrence of some event, e.g. an error condition. This means that, in such preferred embodiments, the predefined data code is not already present in the files stored with the server, but is generated by the server at run time. The predefined data code preferably is used to signal a server-related event, such that the data supplier at the server side does not need to have any knowledge of whether or not a data replacement according to the present invention will occur at the client side or during the internet data transmission.
In further preferred embodiments, further data codes are used to control properties of the third party data inclusion mechanism. Such codes may also be application level protocol codes, for example HTML tags or HTTP attributes.
It is further preferred to use the third party data channel only when the transmission load originating from the server is low. Thus the efficiency of the user""s internet connection can be increased. For example, transmission of the third party data can be started immediately while waiting for data from the remote server to arrive. The third party data can be inserted into the connection on a chunk by chunk basis (i.e. multiplexed) when waiting for data from the server.
Further embodiments may use failed requests or unavailable links or documents to automatically look up related information or links and present same to the user for convenient browsing.
The apparatus of the present invention may be further developed by features mirroring those recited above and/or in the dependent method claims. In further preferred embodiments, the apparatus is an internet router and/or an internet proxy and/or an internet filter. The processing device of the apparatus may be used both for the functionality of the present invention and that of a router, proxy, filter, client or other soft- or hardware.
Likewise, the computer program product of the present invention may be further developed by features mirroring those recited above and/or in the dependent method claims. In further preferred embodiments, the computer program product may be an internet browser or any kind of extension module for such a browser. The product may be stored on a computer readable data carrier (e.g., a floppy disk or a CD-ROM) or loaded into a computer for execution.